/**
 ******************************************************************************
 * @file app_photo.c
 * @author GX (2524913364@qq.com)
 * @brief   相册应用有两个子界面
 *          1.总览界面：
 *            （1）会有四张被压缩的照片显示在画面中
 *             (2) 左滑或者右滑屏幕可以每次切换两张图图片
 *             (3) 上滑退出应用到桌面
 *             (4) 点击任意张图片进入卷轴子界面
 *          2.卷轴界面：
 *             (1) 横向卷轴，一张卷轴包含三张照片。
 *             (2) 显示在画面中只会有一张图的宽度,拖动卷轴可以移动卷轴可视位置
 *             (3) 拖动到卷轴边缘后会刷新卷轴中的图片，实现卷轴可以查看所有照片。
 * @version 1.0.0 
 * @date 2022-07-11
 * 
 * @copyright Copyright (c) 2022
 * 
 ******************************************************************************
 *----------------------------------------------------------------------------*
 *  Remark         : Description                                              *
 *----------------------------------------------------------------------------*
 *  Change History :                                                          *
 *  <Date>     | <Version> | <Author>       | <Description>                   *
 *----------------------------------------------------------------------------*
 *  2022-07-11 | 1.0.0     | GX             | Create file                     *
 *----------------------------------------------------------------------------*
 *                                                                            *
 ******************************************************************************
 */

/*----------------------------- start of file -------------------------------*/

#ifndef _APP_PHOTO_H
#define _APP_PHOTO_H


/*-------------------------------- include ----------------------------------*/

#include <stdio.h>
#include <stdbool.h>
#include <dirent.h>
#include <stdlib.h>

#include "DCLinkList.h"


/*---------------------- Define parameters and types ------------------------*/

/* 相册功能的子界面 */
typedef enum 
{
  PHOTO_BACK_TO_DESTTOP,      /* 返回到桌面 */
  PHOTO_OVERVIEW,             /* 总览界面（小图） */
  PHOTO_SCROLL                /* 卷轴界面（大图） */
}PHOTO_INTERFACE_TRUN;

#define PHOTO_PATH            "./data/photo/"   /* 相片路径 */    

/* 总览界面使用的定义------------------------ */
typedef enum
{
  OVERVIEW_NONE,
  OVERVIEW_FRAM_1,
  OVERVIEW_FRAM_2,
  OVERVIEW_FRAM_3,
  OVERVIEW_FRAM_4
}OVERVIEW_KEY;

/* 背景色 */
#define PHOTO_BACK_COLOR      0x0035454A 
#define PHOTO_FRAME_COLOR     0x00FFFFFF

/* 有四个相框,分布顺序如下
     1   3
     2   4
 */
/* 第一个相框的坐标范围 */
#define PHOTO_FRAM_1_X_START  130
#define PHOTO_FRAM_1_X_END    340
#define PHOTO_FRAM_1_Y_START  75
#define PHOTO_FRAM_1_Y_END    205

/* 第二个相框的坐标范围 */
#define PHOTO_FRAM_2_X_START  130
#define PHOTO_FRAM_2_X_END    340
#define PHOTO_FRAM_2_Y_START  275
#define PHOTO_FRAM_2_Y_END    405

/* 第三个相框的坐标范围 */
#define PHOTO_FRAM_3_X_START  460
#define PHOTO_FRAM_3_X_END    670
#define PHOTO_FRAM_3_Y_START  75
#define PHOTO_FRAM_3_Y_END    205

/* 第四个相框的坐标范围 */
#define PHOTO_FRAM_4_X_START  460
#define PHOTO_FRAM_4_X_END    670
#define PHOTO_FRAM_4_Y_START  275
#define PHOTO_FRAM_4_Y_END    405

/* 每个相框的长宽 */
#define PHOTO_FRAM_WIDTH      210
#define PHOTO_FRAM_HEIGHT     130

/* 框内照片相对于框边的位置偏移 */
#define PHOTO_DELTA           5

/* 卷轴界面使用的定义------------------------ */
#define SRCOLL_SIZE           3   /* 卷轴的尺寸是 3 倍的屏幕大小（不要改） */
#define SRCOLL_VIEW_L_BOUNDARY    0     /* 卷轴视野左边界限制 */
#define SRCOLL_VIEW_R_BOUNDARY    1600  /* 卷轴视野右边界限制 */


/*-------------------------- Function declaration ---------------------------*/

bool app_photo(void);
bool cmpNode(datatype list_node, datatype data);
void show(datatype a);


#endif /* _APP_PHOTO_H */
/*------------------------------ end of file --------------------------------*/

